#!/usr/bin/env python3
"""
多平台视频搜索脚本
支持抖音、快手、微信视频号、小红书、B站等国内主流视频平台的视频搜索和信息提取
"""

import asyncio
import sys
import os
import json

# Add the project root directory to the Python path
sys.path.append(os.path.dirname(os.path.abspath(__file__)))

from src.video_generator.video_search_manager import VideoSearchManager


async def main():
    """
    主函数，处理命令行参数并执行搜索
    """
    if len(sys.argv) < 2:
        print("使用方法:")
        print("  python search_videos.py <关键词> [数量]")
        print("  python search_videos.py <平台> <关键词> [数量]")
        print("\n参数说明:")
        print("  平台: douyin(抖音)、kuaishou(快手)、wechat(微信视频号)、xiaohongshu(小红书)、bilibili(B站)")
        print("  关键词: 搜索关键词")
        print("  数量: 获取视频数量，默认50")
        print("\n示例:")
        print("  python search_videos.py 足球高清")
        print("  python search_videos.py 足球高清 100")
        print("  python search_videos.py douyin 足球高清 30")
        print("  python search_videos.py kuaishou 美食教程 20")
        print("  python search_videos.py wechat 科技资讯 25")
        print("  python search_videos.py xiaohongshu 美妆教程 30")
        print("  python search_videos.py bilibili 学习方法 40")
        return
    
    # 解析命令行参数
    if len(sys.argv) == 2:
        # 只提供关键词，默认在所有平台搜索
        keyword = sys.argv[1]
        max_count = 50
        platform = None
    elif len(sys.argv) == 3:
        # 提供平台和关键词，或关键词和数量
        arg1, arg2 = sys.argv[1], sys.argv[2]
        if arg1 in VideoSearchManager.PLATFORMS:
            platform = arg1
            keyword = arg2
            max_count = 50
        else:
            platform = None
            keyword = arg1
            max_count = int(arg2) if arg2.isdigit() else 50
    else:
        # 提供平台、关键词和数量
        platform = sys.argv[1] if sys.argv[1] in VideoSearchManager.PLATFORMS else None
        keyword = sys.argv[2] if platform else sys.argv[1]
        max_count_index = 3 if platform else 2
        max_count = int(sys.argv[max_count_index]) if len(sys.argv) > max_count_index and sys.argv[max_count_index].isdigit() else 50
    
    print(f"正在搜索关键词: '{keyword}'")
    if platform:
        print(f"搜索平台: {platform}")
    else:
        print("搜索平台: 所有平台")
    print(f"获取数量: {max_count}")
    
    # 创建搜索管理器实例
    manager = VideoSearchManager()
    
    try:
        if platform:
            # 在指定平台搜索
            videos = await manager.search_videos(platform, keyword, max_count)
            # 输出JSON格式结果
            print(json.dumps(videos, ensure_ascii=False, indent=2))
        else:
            # 在所有平台搜索
            results = await manager.search_all_platforms(keyword, max_count)
            # 输出JSON格式结果
            print(json.dumps(results, ensure_ascii=False, indent=2))
            
    except Exception as e:
        print(f"搜索过程中发生错误: {e}")


if __name__ == "__main__":
    asyncio.run(main())